/*******************************************************************************
* Copyright (c) 2007, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.swt.dnd;
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
/**
* This class provides default implementations to display a drag source
* effect during a drag and drop operation. The current implementation
* does not provide any visual feedback.
*
* <p>The drag source effect has the same API as the
* <code>DragSourceAdapter</code> so that it can provide custom visual
* feedback when a <code>DragSourceEvent</code> occurs.
* </p>
*
* <p>Classes that wish to provide their own drag source effect such as
* displaying a default source image during a drag can extend the <code>DragSourceEffect</code>
* class, override the <code>DragSourceAdapter.dragStart</code> method and set
* the field <code>DragSourceEvent.image</code> with their own image.
* The image should be disposed when <code>DragSourceAdapter.dragFinished</code> is called.
* </p>
*
* @see DragSourceAdapter
* @see DragSourceEvent
* @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
*
* @since 3.3
*/
public class DragSourceEffect extends DragSourceAdapter {
Control control = null;
/**
* Creates a new <code>DragSourceEffect</code> to handle drag effect from the specified <code>Control</code>.
*
* @param control the <code>Control</code> that the user clicks on to initiate the drag
*
* @exception IllegalArgumentException <ul>
* <li>ERROR_NULL_ARGUMENT - if the control is null</li>
* </ul>
*/
public DragSourceEffect(Control control) {
if (control == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
this.control = control;
}
/**
* Returns the Control which is registered for this DragSourceEffect. This is the control that the
* user clicks in to initiate dragging.
*
* @return the Control which is registered for this DragSourceEffect
*/
public Control getControl() {
return control;
}
}